Revert Last Migration
Imagine a situation in which you prepared some migrations to pre - populate data in the database, but after a while you need to add new pre- existing data. In the context of a cooking app, a new ingredient becomes available, and you want to add it to the existing database.
Surely you can re-create the table all over again, but you want to do it in production, on a live database.
In order to do that we must first enable revert
` (there will be more run time commands in the future) Fluent command.
In configure.swift
add this code in
configure
function:
//Adds Fluent’s commands to the CommandConfig. Currently only the RevertCommand at "revert".
var commandConfig = CommandConfig.default()
commandConfig.useFluentCommands()
services.register(commandConfig)
To see what run commands
are available for a Vapor app, just type:
<path to your Vapor app>/Run -h
After I added extra command, I got this as a result:
Commands:
routes Displays all registered routes
revert Reverts migrations that have been previously prepared.
By default, only the latest batch of migrations will be reverted.
serve (default) Begins serving the app over HTTP
And by typing:
<path to your Vapor app>/Run revert
I have reverted the last migration:
mmj$ <path to your Vapor app>Run revert
[ INFO ] Migrating 'psql' database (FluentProvider.swift:28)
[ INFO ] Migrations complete (FluentProvider.swift:32)
[ INFO ] Revert last batch of migrations requested (RevertCommand.swift:57)
[ WARNING ] This will revert the last batch of migrations for all configured databases (RevertCommand.swift:58)
Are you sure you want to revert the last batch of migrations?
y/n> y
[ INFO ] Reverting last batch of migrations on 'psql' database (RevertCommand.swift:65)
[ INFO ] Reverting migration 'PopulateTypes' (MigrationContainer.swift:94)
[ INFO ] Reverting migration 'Type' (MigrationContainer.swift:94)
[ INFO ] Succesfully reverted last batch of migrations (RevertCommand.swift:69)
Just an information. The default command is serve
, so when you start your
Vapor
app, you may as well have typed:
mmj$ <path to your Vapor app>Run serve
Prev: Adding Pagination To Vapor Query
Next: Stop / Start Docker Apps